
using System;
using System.Runtime.InteropServices;
using System.Text;

namespace CUtil.Win32
{
	/// <summary> 
	/// 
	/// </summary>
	[System.Security.SuppressUnmanagedCodeSecurity()]
	public class Kernel32 {

		/// <summary> 
		/// Do not create instances of this class!
		/// </summary>
		private Kernel32() {
		}

#region enums
		/// <summary>These are the drive types returned by the GetDriveType method.</summary>
		public enum DriveTypes {
			/// <summary>CD Rom Drive.</summary>
			DRIVE_CDROM = 5,
			/// <summary>Fixed Drive.</summary>
			DRIVE_FIXED = 3,
			/// <summary>Ram Drive.</summary>
			DRIVE_RAMDISK = 6,
			/// <summary>Remote Drive.</summary>
			DRIVE_REMOTE = 4,
			/// <summary>Removable Drive.</summary>
			DRIVE_REMOVABLE = 2
		}
#endregion enums
				
#region constants
#endregion constants

#region structs
#endregion structs

#region functions
		/// <summary>GetCurrentThreadId</summary>
		[DllImport( "KERNEL32.DLL")]
		public static extern int GetCurrentThreadId () ;
		
		/// <summary>GetDriveType call.</summary>
		[DllImport("Kernel32.dll")]
		public static extern DriveTypes GetDriveType(string nDrive);

		/// <summary>OutputDebugString call.</summary>
		[DllImport("KERNEL32.DLL")]
		public static extern void OutputDebugString(string s);

		/// <summary>QueryPerformanceCounter</summary>
		[DllImport("KERNEL32.DLL")]
		public static extern bool QueryPerformanceCounter(
		  ref Int64 performanceCount  
		);
	
		/// <summary>QueryPerformanceFrequency</summary>
		[DllImport("KERNEL32.DLL")]
		public static extern bool QueryPerformanceFrequency(
		  ref Int64 frequency 
		);

		/// <summary>GetLongPathName</summary>
		[DllImport("KERNEL32.dll")]
		public static extern uint GetLongPathName (
			string shortName,
			StringBuilder longNameBuffer,
			uint bufferSize
		);
#endregion functions
	}
}


